$(function() {

	// 用户名输入框失去焦点事件
	$("#username").blur(function() {
		checkUserName($(this));
	})

	// 用户密码效验
	$("#pw1").blur(function() {
		checkpw1($(this));
	})

	// 确认用户密码效验
	$("#pw2").blur(function() {
		checkpw2($(this));
	})

	// 头像文件格式验证和预览
	$("#head_portrait").change(function() {
		var v = $(this).val();

		var extArr = v.split(".");
		var ext = extArr[extArr.length - 1];// 取最后一个字符串（就是扩展名）
		// 扩展名转小写
		ext = ext.toLowerCase();

		console.log(isInArray(imageExt, ext));

		// 判断扩展
		if (!isInArray(imageExt, ext)) {
			$(this).next().text("允许的图片格式是：" + imageExt.join(","));
		} else {
			$(this).next().text("");

			// 使用原生的获取元素
			var _this = document.getElementById("head_portrait");

			// 预览图片
			showImage(_this, "showimage");

		}

	})
	
	
	//表单提交验证
	$("#adduser").click(function(){
		//错误信息的条数
		var error = 0;
		
		//判断是否有错误，显示界面
		$("input").each(function(){
			//取出当前input框的值
			var v = $(this).val();
			//取出当前input框的id
			var id = $(this).attr("id");
			
			//根据id不同调用不同的验证逻辑
			switch (id) {
			case "username":
				checkUserName($("#username"));
				break;
			case "pw1":
				checkpw1($("#pw1"));
				break;
			case "pw2":
				checkpw2($("#pw2"));
				break;
			default:
				break;
			}
			
			//判断是否显示了错误信息
			$(this).next().text() != '' ? error++ : '';
			
		})
		
		
		//判断是否有错误信息
		if(error > 0) {
			//返回 false 在jq中阻止后面的行为（包括默认行为）
			return false;
		}
		
	})

})

/**
 * 检查用户名的方法
 * @param _this
 * @returns
 */
function checkUserName(_this) {
	var v = _this.val();

	// 非空效验开始

	// 去掉首位空格
	v = $.trim(v);

	// 去空格以后的输入框的内容
	_this.val(v);

	if (v == '') {
		_this.next().text("用户名不能为空");
		return false;
	} else {
		_this.next().text("");
	}

	// 非空效验结束

	// 用户名是否重复效验开始
	$.get(checkUserNameUrl, {
		"username" : v
	}, function(data, s, x) {
		// 如果有错误信息
		if (data.code != 1) {
			_this.next().text(data.msg)
		}
	})
	// 用户名是否重复效验结束
}

/**
 * 密码效验
 * @param _this
 * @returns
 */
function checkpw1(_this) {
	var v = _this.val();

	_this.val(v);

	// 如果你要效验是否包括大写字母数字的，你需要借助正则表达式

	if (v.length < 6 || v.length > 50) {
		_this.next().text("密码长度不符合要求，必须大于6位，小于50位长度");
		return false;
	} else {
		_this.next().text("");
	}
}

/**
 * 效验确认密码
 * @param _this
 * @returns
 */
function checkpw2(_this) {
	var v = _this.val();

	_this.val(v);

	// 如果你要效验是否包括大写字母数字的，你需要借助正则表达式

	if (v.length < 6 || v.length > 50) {
		_this.next().text("密码长度不符合要求，必须大于6位，小于50位长度");
		return false;
	} else {
		_this.next().text("");
	}
	// 判断密码和确认密码是否一致
	if ($("#pw1").val() != _this.val()) {
		_this.next().text("二次密码不一致");
	}
}